app.controller("coreCtrl", function($scope, $interval, coreService, $log) {
    $log.info('CoreController initialize');

    // 系统名称
    $scope.systemName = "机场地服监控系统";

    $interval(function () {
        coreService.getServerDateTime({
            action: 'getServerDateTime'
        },function(data){
            $scope.serverDateTime = data.serverDateTime;
            // 系统服务状态是否异常
            $scope.closeAlarmModal();
        },function (error) {
            $scope.openAlarmModal();
        });
    },1000,-1);

    /**
     * 监控系统发生异常，开始声音和弹框告警
     */
    $scope.openAlarmModal = function () {
        // 如果系统发生异常，如果系统在普通页面，也支持弹框告警
        if (!window.speechSynthesis.speaking) {
            // 当系统出现异常时，进行声音告警，允许将系统异常前最后一次的状态告警播放完。
            $scope.readOutLoud($scope.systemName + "异常，请及时处理！");
        }
        // 避免重复弹框
        if ($('#systemAlarmModal').data('bs.modal') === undefined) {
            $('#systemAlarmModal').modal('show');
        }
    }

    /**
     * 系统恢复正常后，关闭弹框
     */
    $scope.closeAlarmModal = function () {
        // 当没有告警时，如果没有弹框，则不处理
        if ($('#systemAlarmModal').data('bs.modal') === undefined) {
            return;
        }
        // 当没有告警时，如果弹框还未关闭，则关闭弹框
        if ($('#systemAlarmModal').data('bs.modal').isShown) {
            $('#systemAlarmModal').modal('hide');
        }
    }

    /**
     * 播放告警内容
     * @param count
     */
    $scope.readOutLoud = function (voiceContent) {
        // 空格为了解决第一次播报时，“飞机”读音不清晰,被吞吐掉了
        voiceContent = "  " + voiceContent.replaceAll("地", "di");
        var msg = new SpeechSynthesisUtterance(voiceContent);
        msg.lang = 'zh-CN';
        window.speechSynthesis.speak(msg);
    };

    /**
     * 注销用户
     */
    $scope.logout = function(){
        message_confirm('提示','确认是否注销当前用户？', function (result) {
            if (result) {
                var param = {
                    action: 'logout'
                };
                coreService.logout(param, function(data){
                    if(data.status === 'SUCCESS'){
                        location.href = "/";
                    }else{
                        message_alert('提示', data.errorReason,null);
                    }
                });
            }
        });
    };
 });